﻿#pragma once
#pragma execution_character_set("utf-8")
// 本文件为utf-8 编码格式

#ifndef __GD__ConfigDataModule__
#define __GD__ConfigDataModule__

#include "CrossApp.h"
#include "GdDefine.h"
#include <iostream>
#include <CrossAppExt.h>
#include <map>

class ConfigDataModule
{

public:
	virtual ~ConfigDataModule();
	static ConfigDataModule* getInstance();
	// 初始化配置数据
	void init(); 
	// 获取指定城市的子城市
	vector<GDCity> getSubCity(std::string code);
	// 获取指定key对应的文字信息
	std::string getSource(const std::string key,const std::string& defaultValue="");
    
    CSJson::Value getObjectSource();
protected:
	
private:
	ConfigDataModule();
	// 初始化语音文字配置
	void initSource(CSJson::Value root);
	// 初始化城市数据
	void initCityData(CSJson::Value root);
	// 初始化薪水范围数据
	void initSalaryRangeData(CSJson::Value root);
	void initSharePlatformData(CSJson::Value root);
	void initGoodsGrabSite(CSJson::Value root);
	void initGDTopicIcons(CSJson::Value root);
	void initGoodsTypes(CSJson::Value root);
	void initImageFilters(CSJson::Value root);
	void initImageStickers(CSJson::Value root);
public:
	vector<GDCity> topCitys; // 一级城市列表
	vector<GDSalaryRange> salaryRanges; // 薪水范围
	vector<GDSharePlatform> sharePlatforms; // 分享平台列表
	vector<GDGoodsGrabSite> goodsGrabSites; // 商品分享网站列表
	map< std::string, GDTopicIcon > topicIcons; // 专题图标信息
	vector<GdBean> goodsTypes; // 货币单位
	vector<GDImageFilter> imageFilters; // 滤镜配置
	vector<GdBean> imageStickers; // 贴纸配置
private:
	map< std::string, vector<GDCity> > subCitys; // 二级城市列表
	map< std::string, std::string > source; // 文字配置信息
    CSJson::Value sourceConfig;
};
#endif /* defined(__HelloCpp__ViewController__) */